1. Field
The present invention relates generally to data communication, and more specifically to a cryptosync design suitable for use in a wireless communication system (e.g., an IS-856 CDMA system).
2. Background
Wireless communication systems are widely deployed to provide various types of communication such as voice, packet data, and so on. These systems may be multiple-access systems capable of supporting communication with multiple users, and may be based on code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), or some other multiple access techniques. CDMA systems may provide certain advantages over other systems, such as increased system capacity.
For some applications, security is not necessary and data may be transmitted in the clear (i.e., without encryption) between an access terminal and an access network. However, for certain other applications, “sensitive” data may be transmitted over the air. Examples of such sensitive data include personal information, credit card information, account information, and so on. For sensitive data, encryption may be used to provide security for the over-the-air transmission.
Numerous encryption algorithms are available to encrypt data. For many algorithms, a security key is used in conjunction with a “cryptosync” to generate a mask that is then used to encrypt the data. The security key is an important aspect of the encryption process, and various techniques have been devised to exchange and maintain the key in secrecy. The security key is typically a static value, and the cryptosync is used to modify the security key so that the resultant mask has a different value each time the key is used. For example, if encryption is to be performed on each packet of data, then the cryptosync may be used to generate a new mask for each data packet based on the same security key. This then prevents discovery of the contents of the packet or compromising the security key based on packets that have been encrypted using the same key.
An important property of the cryptosync is its variability (per encryption attempt), which is characterized by a new cryptosync value being provided each time the security key is used. One technique for generating cryptosync is with a timer that keeps track of time based on some absolute time reference. For this technique, the cryptosync may be set equal to the current time, as provided by the timer, when the cryptosync is needed. To ensure proper generation of the cryptosync, the timer needs to have the required resolution, which is determined by the rate at which the security key is used (e.g., the rate of the data packet), so that duplicate time values are not used for the cryptosync. The design of various entities (e.g., the base station controller) in the communication system may be impacted by the need to maintain a (relatively) fine time resolution for the packets.
Another technique for generating cryptosync is with a counter that is incremented each time the security key is used (e.g., for each packet to be encrypted). To ensure that the same cryptosync values are used at both the sender and receiver for a given packet, the counters at these two entities need to be synchronized. Moreover, certain restrictions may be imposed on when the counters may be reset to ensure that duplicate counter values are not used. These requirements may complicate the generation of cryptosync based solely on a counter.
There is therefore a need in the art for a cryptosync design that has the desired variability property and avoids the disadvantages described above for timer-only based and counter-only based cryptosync designs.